<?xml version="1.0" encoding="ascii"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>simvoc.core.kernel.EventQueue</title>
  <link rel="stylesheet" href="epydoc.css" type="text/css" />
  <script type="text/javascript" src="epydoc.js"></script>
</head>

<body bgcolor="white" text="black" link="blue" vlink="#204080"
      alink="#204080">
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">
  <!-- Home link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="simvoc-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Project homepage -->
      <th class="navbar" align="right" width="100%">
        <table border="0" cellpadding="0" cellspacing="0">
          <tr><th class="navbar" align="center"
            >SimVOC</th>
          </tr></table></th>
  </tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
  <tr valign="top">
    <td width="100%">
      <span class="breadcrumbs">
        <a href="simvoc-module.html">Package&nbsp;simvoc</a> ::
        <a href="simvoc.core-module.html">Package&nbsp;core</a> ::
        <a href="simvoc.core.kernel-module.html">Module&nbsp;kernel</a> ::
        Class&nbsp;EventQueue
      </span>
    </td>
    <td>
      <table cellpadding="0" cellspacing="0">
        <!-- hide/show private -->
        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
      </table>
    </td>
  </tr>
</table>
<!-- ==================== CLASS DESCRIPTION ==================== -->
<h1 class="epydoc">Class EventQueue</h1><p class="nomargin-top"><span class="codelink"><a href="simvoc.core.kernel-pysrc.html#EventQueue">source&nbsp;code</a></span></p>
<center>
<center>  <map id="uml_class_diagram_for_simvoc_c_19" name="uml_class_diagram_for_simvoc_c_19">
<area shape="rect" id="node37" href="simvoc.core.kernel.EventQueue-class.html#__init__" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="17,39,395,57"/>
<area shape="rect" id="node37" href="simvoc.core.kernel.EventQueue-class.html#get_size" title="Returns: &#160;current size of the event queue" alt="" coords="17,57,395,76"/>
<area shape="rect" id="node37" href="simvoc.core.kernel.EventQueue-class.html#has_events" title="Returns: &#160;True iff the event queue is non&#45;empty" alt="" coords="17,76,395,95"/>
<area shape="rect" id="node37" href="simvoc.core.kernel.EventQueue-class.html#has_regular_events" title="Returns: &#160;True iff there are regular (non&#45;periodic) events in the queue" alt="" coords="17,95,395,113"/>
<area shape="rect" id="node37" href="simvoc.core.kernel.EventQueue-class.html#cancel_event" title="Cancels a scheduled event that is waiting in the queue." alt="" coords="17,113,395,132"/>
<area shape="rect" id="node37" href="simvoc.core.kernel.EventQueue-class.html#add_event" title="Adds an event to the queue." alt="" coords="17,132,395,151"/>
<area shape="rect" id="node37" href="simvoc.core.kernel.EventQueue-class.html#adjust_events" title="Adjusts event times if the simulator start clock changes." alt="" coords="17,151,395,169"/>
<area shape="rect" id="node37" href="simvoc.core.kernel.EventQueue-class.html#new_event" title="Creates and schedules a new event" alt="" coords="17,169,395,188"/>
<area shape="rect" id="node37" href="simvoc.core.kernel.EventQueue-class.html#new_simple_event" title="Creates and schedules a new REGULAR event that invokes a simulator&#45;aware &#160;(non&#45;external) function." alt="" coords="17,188,395,207"/>
<area shape="rect" id="node37" href="simvoc.core.kernel.EventQueue-class.html#new_periodic_event" title="Creates and schedules a new PERIODIC event that invokes a simulator&#45;aware &#160;(non&#45;external) function." alt="" coords="17,207,395,225"/>
<area shape="rect" id="node37" href="simvoc.core.kernel.EventQueue-class.html#new_external_event" title="Creates and schedules a new REGULAR event that invokes an EXTERNAL (non &#160;simulator&#45;aware) function." alt="" coords="17,225,395,244"/>
<area shape="rect" id="node37" href="simvoc.core.kernel.EventQueue-class.html#pop" title="Removes and returns the next event in the simulation, partially ordered by &#160;activation time" alt="" coords="17,244,395,263"/>
<area shape="rect" id="node37" href="simvoc.core.kernel.EventQueue-class.html#__str__" title="str(x)" alt="" coords="17,263,395,281"/>
<area shape="rect" id="node1" href="simvoc.core.kernel.EventQueue-class.html" title="Simulator event queue, implemented using the Python heapq module." alt="" coords="5,6,405,287"/>
</map>
  <img src="uml_class_diagram_for_simvoc_c_19.gif" alt='' usemap="#uml_class_diagram_for_simvoc_c_19" ismap="ismap" class="graph-without-title" />
</center>
</center>
<hr />
<p>Simulator event queue, implemented using the Python heapq module. 
  Events are partially ordered with respect to activation time, with the 
  caveat that multiple events scheduled to activate at the same time may 
  activate in any order.</p>

<!-- ==================== INSTANCE METHODS ==================== -->
<a name="section-InstanceMethods"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Instance Methods</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-InstanceMethods"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="simvoc.core.kernel.EventQueue-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>)</span><br />
      x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="simvoc.core.kernel-pysrc.html#EventQueue.__init__">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">int</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="simvoc.core.kernel.EventQueue-class.html#get_size" class="summary-sig-name">get_size</a>(<span class="summary-sig-arg">self</span>)</span><br />
      Returns:
      current size of the event queue</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="simvoc.core.kernel-pysrc.html#EventQueue.get_size">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">bool</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="simvoc.core.kernel.EventQueue-class.html#has_events" class="summary-sig-name">has_events</a>(<span class="summary-sig-arg">self</span>)</span><br />
      Returns:
      True iff the event queue is non-empty</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="simvoc.core.kernel-pysrc.html#EventQueue.has_events">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">bool</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="simvoc.core.kernel.EventQueue-class.html#has_regular_events" class="summary-sig-name">has_regular_events</a>(<span class="summary-sig-arg">self</span>)</span><br />
      Returns:
      True iff there are regular (non-periodic) events in the queue</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="simvoc.core.kernel-pysrc.html#EventQueue.has_regular_events">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="simvoc.core.kernel.EventQueue-class.html#cancel_event" class="summary-sig-name">cancel_event</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">evt</span>)</span><br />
      Cancels a scheduled event that is waiting in the queue.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="simvoc.core.kernel-pysrc.html#EventQueue.cancel_event">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="simvoc.core.kernel.EventQueue-class.html#add_event" class="summary-sig-name">add_event</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">evt</span>)</span><br />
      Adds an event to the queue.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="simvoc.core.kernel-pysrc.html#EventQueue.add_event">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="simvoc.core.kernel.EventQueue-class.html#adjust_events" class="summary-sig-name">adjust_events</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">clock</span>)</span><br />
      Adjusts event times if the simulator start clock changes.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="simvoc.core.kernel-pysrc.html#EventQueue.adjust_events">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="simvoc.core.kernel.EventQueue-class.html#new_event" class="summary-sig-name">new_event</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">sim</span>,
        <span class="summary-sig-arg">act_time</span>,
        <span class="summary-sig-arg">regular</span>,
        <span class="summary-sig-arg">extern</span>,
        <span class="summary-sig-arg">fn</span>,
        <span class="summary-sig-arg">*args</span>,
        <span class="summary-sig-arg">**kwds</span>)</span><br />
      Creates and schedules a new event</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="simvoc.core.kernel-pysrc.html#EventQueue.new_event">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="simvoc.core.kernel.EventQueue-class.html#new_simple_event" class="summary-sig-name">new_simple_event</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">sim</span>,
        <span class="summary-sig-arg">act_time</span>,
        <span class="summary-sig-arg">fn</span>,
        <span class="summary-sig-arg">*args</span>,
        <span class="summary-sig-arg">**kwds</span>)</span><br />
      Creates and schedules a new REGULAR event that invokes a 
      simulator-aware (non-external) function.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="simvoc.core.kernel-pysrc.html#EventQueue.new_simple_event">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="simvoc.core.kernel.EventQueue-class.html#new_periodic_event" class="summary-sig-name">new_periodic_event</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">sim</span>,
        <span class="summary-sig-arg">act_time</span>,
        <span class="summary-sig-arg">fn</span>,
        <span class="summary-sig-arg">*args</span>,
        <span class="summary-sig-arg">**kwds</span>)</span><br />
      Creates and schedules a new PERIODIC event that invokes a 
      simulator-aware (non-external) function.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="simvoc.core.kernel-pysrc.html#EventQueue.new_periodic_event">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="simvoc.core.kernel.EventQueue-class.html#new_external_event" class="summary-sig-name">new_external_event</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">sim</span>,
        <span class="summary-sig-arg">act_time</span>,
        <span class="summary-sig-arg">fn</span>,
        <span class="summary-sig-arg">*args</span>,
        <span class="summary-sig-arg">**kwds</span>)</span><br />
      Creates and schedules a new REGULAR event that invokes an EXTERNAL 
      (non simulator-aware) function.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="simvoc.core.kernel-pysrc.html#EventQueue.new_external_event">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="pop"></a><span class="summary-sig-name">pop</span>(<span class="summary-sig-arg">self</span>)</span><br />
      Removes and returns the next event in the simulation, partially 
      ordered by activation time</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="simvoc.core.kernel-pysrc.html#EventQueue.pop">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="simvoc.core.kernel.EventQueue-class.html#__str__" class="summary-sig-name">__str__</a>(<span class="summary-sig-arg">self</span>)</span><br />
      str(x)</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="simvoc.core.kernel-pysrc.html#EventQueue.__str__">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
  <tr>
    <td colspan="2" class="summary">
    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
      <code>__delattr__</code>,
      <code>__format__</code>,
      <code>__getattribute__</code>,
      <code>__hash__</code>,
      <code>__new__</code>,
      <code>__reduce__</code>,
      <code>__reduce_ex__</code>,
      <code>__repr__</code>,
      <code>__setattr__</code>,
      <code>__sizeof__</code>,
      <code>__subclasshook__</code>
      </p>
    </td>
  </tr>
</table>
<!-- ==================== PROPERTIES ==================== -->
<a name="section-Properties"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Properties</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-Properties"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
  <tr>
    <td colspan="2" class="summary">
    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
      <code>__class__</code>
      </p>
    </td>
  </tr>
</table>
<!-- ==================== METHOD DETAILS ==================== -->
<a name="section-MethodDetails"></a>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Method Details</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-MethodDetails"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
</table>
<a name="__init__"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>)</span>
    <br /><em class="fname">(Constructor)</em>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="simvoc.core.kernel-pysrc.html#EventQueue.__init__">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>x.__init__(...) initializes x; see x.__class__.__doc__ for 
  signature</p>
  <dl class="fields">
    <dt>Overrides:
        object.__init__
        <dd><em class="note">(inherited documentation)</em></dd>
    </dt>
  </dl>
</td></tr></table>
</div>
<a name="get_size"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">get_size</span>(<span class="sig-arg">self</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="simvoc.core.kernel-pysrc.html#EventQueue.get_size">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  
  <dl class="fields">
    <dt>Returns: int</dt>
        <dd>current size of the event queue</dd>
  </dl>
</td></tr></table>
</div>
<a name="has_events"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">has_events</span>(<span class="sig-arg">self</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="simvoc.core.kernel-pysrc.html#EventQueue.has_events">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  
  <dl class="fields">
    <dt>Returns: bool</dt>
        <dd>True iff the event queue is non-empty</dd>
  </dl>
</td></tr></table>
</div>
<a name="has_regular_events"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">has_regular_events</span>(<span class="sig-arg">self</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="simvoc.core.kernel-pysrc.html#EventQueue.has_regular_events">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  
  <dl class="fields">
    <dt>Returns: bool</dt>
        <dd>True iff there are regular (non-periodic) events in the queue</dd>
  </dl>
</td></tr></table>
</div>
<a name="cancel_event"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">cancel_event</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">evt</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="simvoc.core.kernel-pysrc.html#EventQueue.cancel_event">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Cancels a scheduled event that is waiting in the queue. If the event 
  is not found in the queue, an Exception will be raised. Upon 
  cancellation, the event will be marked as activated, so that periodic 
  scheduling code behaves properly.</p>
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>evt</code></strong> - Event to cancel</li>
    </ul></dd>
  </dl>
</td></tr></table>
</div>
<a name="add_event"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">add_event</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">evt</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="simvoc.core.kernel-pysrc.html#EventQueue.add_event">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Adds an event to the queue. Events must not specify an activation time
  earlier than the current simulated time, or a TimeTravelException will be
  raised.</p>
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>evt</code></strong> - Event to be added to the queue</li>
    </ul></dd>
    <dt>Returns:</dt>
        <dd>reference to the newly added event</dd>
  </dl>
</td></tr></table>
</div>
<a name="adjust_events"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">adjust_events</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">clock</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="simvoc.core.kernel-pysrc.html#EventQueue.adjust_events">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Adjusts event times if the simulator start clock changes. This method 
  is intended to be called only by the simulator and only before starting 
  the actual simulation.</p>
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>clock</code></strong> - New start clock value</li>
    </ul></dd>
    <dt>Returns:</dt>
        <dd>reference to the newly added event</dd>
  </dl>
</td></tr></table>
</div>
<a name="new_event"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">new_event</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">sim</span>,
        <span class="sig-arg">act_time</span>,
        <span class="sig-arg">regular</span>,
        <span class="sig-arg">extern</span>,
        <span class="sig-arg">fn</span>,
        <span class="sig-arg">*args</span>,
        <span class="sig-arg">**kwds</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="simvoc.core.kernel-pysrc.html#EventQueue.new_event">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Creates and schedules a new event</p>
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>sim</code></strong> - Reference to the Simulator object</li>
        <li><strong class="pname"><code>act_time</code></strong> (number) - Event activation time</li>
        <li><strong class="pname"><code>regular</code></strong> (bool) - specifies whether event is regular or periodic</li>
        <li><strong class="pname"><code>extern</code></strong> (bool) - specifies whether event is external to the simulator or is 
          simulator-aware</li>
        <li><strong class="pname"><code>fn</code></strong> - Function to be called when the event activates</li>
        <li><strong class="pname"><code>args</code></strong> - Arguments to be passed (in order) to the function</li>
        <li><strong class="pname"><code>kwds</code></strong> - Keywods to be passed to the function</li>
    </ul></dd>
    <dt>Returns:</dt>
        <dd>reference to the newly added event</dd>
  </dl>
</td></tr></table>
</div>
<a name="new_simple_event"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">new_simple_event</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">sim</span>,
        <span class="sig-arg">act_time</span>,
        <span class="sig-arg">fn</span>,
        <span class="sig-arg">*args</span>,
        <span class="sig-arg">**kwds</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="simvoc.core.kernel-pysrc.html#EventQueue.new_simple_event">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Creates and schedules a new REGULAR event that invokes a 
  simulator-aware (non-external) function. The first two arguments to the 
  function will be the current simulated time and a reference to the 
  Simulator itself.</p>
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>sim</code></strong> - Reference to the Simulator object</li>
        <li><strong class="pname"><code>act_time</code></strong> (number) - Event activation time</li>
        <li><strong class="pname"><code>fn</code></strong> - Function to be called when the event activates</li>
        <li><strong class="pname"><code>args</code></strong> - Arguments to be passed (in order) to the function</li>
        <li><strong class="pname"><code>kwds</code></strong> - Keywods to be passed to the function</li>
    </ul></dd>
    <dt>Returns:</dt>
        <dd>reference to the newly added event</dd>
  </dl>
</td></tr></table>
</div>
<a name="new_periodic_event"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">new_periodic_event</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">sim</span>,
        <span class="sig-arg">act_time</span>,
        <span class="sig-arg">fn</span>,
        <span class="sig-arg">*args</span>,
        <span class="sig-arg">**kwds</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="simvoc.core.kernel-pysrc.html#EventQueue.new_periodic_event">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Creates and schedules a new PERIODIC event that invokes a 
  simulator-aware (non-external) function. The first two arguments to the 
  function will be the current simulated time and a reference to the 
  Simulator itself.</p>
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>sim</code></strong> - Reference to the Simulator object</li>
        <li><strong class="pname"><code>act_time</code></strong> (number) - Event activation time</li>
        <li><strong class="pname"><code>fn</code></strong> - Function to be called when the event activates</li>
        <li><strong class="pname"><code>args</code></strong> - Arguments to be passed (in order) to the function</li>
        <li><strong class="pname"><code>kwds</code></strong> - Keywods to be passed to the function</li>
    </ul></dd>
    <dt>Returns:</dt>
        <dd>reference to the newly added event</dd>
  </dl>
</td></tr></table>
</div>
<a name="new_external_event"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">new_external_event</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">sim</span>,
        <span class="sig-arg">act_time</span>,
        <span class="sig-arg">fn</span>,
        <span class="sig-arg">*args</span>,
        <span class="sig-arg">**kwds</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="simvoc.core.kernel-pysrc.html#EventQueue.new_external_event">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Creates and schedules a new REGULAR event that invokes an EXTERNAL 
  (non simulator-aware) function. The current time and simulator reference 
  will NOT be passed to the function.</p>
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>sim</code></strong> - Reference to the Simulator object</li>
        <li><strong class="pname"><code>act_time</code></strong> (number) - Event activation time</li>
        <li><strong class="pname"><code>fn</code></strong> - Function to be called when the event activates</li>
        <li><strong class="pname"><code>args</code></strong> - Arguments to be passed (in order) to the function</li>
        <li><strong class="pname"><code>kwds</code></strong> - Keywods to be passed to the function</li>
    </ul></dd>
    <dt>Returns:</dt>
        <dd>reference to the newly added event</dd>
  </dl>
</td></tr></table>
</div>
<a name="__str__"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">__str__</span>(<span class="sig-arg">self</span>)</span>
    <br /><em class="fname">(Informal representation operator)</em>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="simvoc.core.kernel-pysrc.html#EventQueue.__str__">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>str(x)</p>
  <dl class="fields">
    <dt>Overrides:
        object.__str__
        <dd><em class="note">(inherited documentation)</em></dd>
    </dt>
  </dl>
</td></tr></table>
</div>
<br />
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">
  <!-- Home link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="simvoc-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Project homepage -->
      <th class="navbar" align="right" width="100%">
        <table border="0" cellpadding="0" cellspacing="0">
          <tr><th class="navbar" align="center"
            >SimVOC</th>
          </tr></table></th>
  </tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
  <tr>
    <td align="left" class="footer">
    Generated by Epydoc 3.0 on Fri Oct 23 11:04:31 2009
    </td>
    <td align="right" class="footer">
      <a target="mainFrame" href="http://epydoc.sourceforge.net"
        >http://epydoc.sourceforge.net</a>
    </td>
  </tr>
</table>

<script type="text/javascript">
  <!--
  // Private objects are initially displayed (because if
  // javascript is turned off then we want them to be
  // visible); but by default, we want to hide them.  So hide
  // them unless we have a cookie that says to show them.
  checkCookie();
  // -->
</script>
</body>
</html>
